﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Data;

namespace Controllers
{
    public class FacturacionController
    {
        public static List<Factura> ObtenerTodos(string clientId, int pagina, int cantidadRegistros)
        {
            var list = new List<Factura>();
            string where = "";
            var sql = "Select TOP " + cantidadRegistros + " * From Superacidos.Facturacion";

            if (pagina > 1)
            {
                int limiteAnterior = (pagina - 1) * cantidadRegistros;

                where += " Viaje_clientId = " + clientId + " AND " +
                         " Viaje_Id NOT IN " + "(Select TOP " + limiteAnterior +
                         " Viaje_Id from Superacidos.Facturacion WHERE viaje_clientId = "+clientId+"  ORDER BY Viaje_fecha) ";
            }

            sql += " WHERE " + where;
            

            var reader = ConexionBaseDeDatos.GetData(sql, CommandType.Text);

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                   list.Add(ObtenerObjeto(reader));
                }
            }

            return list;
        }

        public static Factura ObtenerObjeto(OleDbDataReader reader)
        {
            var factura = new Factura();

            if (reader["Viaje_Id"] != DBNull.Value)
                factura.Viaje_Id = (int)reader["Viaje_Id"];
            if (reader["Viaje_ClienteId"] != DBNull.Value)
                factura.Viaje_ClienteId = (int)reader["Viaje_ClienteId"];
            if (reader["Viaje_Fecha"] != DBNull.Value)
                factura.Viaje_Fecha = (DateTime)reader["Viaje_Fecha"];
            if (reader["Recaudacion"] != DBNull.Value)
                factura.Viaje_Recaudacion = (decimal)reader["Recaudacion"];
            if (reader["Chofer_DNI"] != DBNull.Value)
                factura.Viaje_Chofer_DNI = (string)reader["Chofer_DNI"];
            if (reader["Auto_Patente"] != DBNull.Value)
                factura.Viaje_Auto_Patente = (string)reader["Auto_Patente"];


            return factura;
        }
   
    }
}
